package GUI;


import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.ListSelectionModel;
import javax.swing.SwingConstants;

import odpgl.Implementacion;
import clientes.Cliente;
import clientes.listaPedidosOrdenados;

import java.awt.Font;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;

import javax.swing.JList;
import javax.swing.JComboBox;

import pedidos.Pedido;
import pedidos.Pedido.Estado;

import javax.swing.JCheckBox;

import com.sun.xml.internal.bind.v2.runtime.unmarshaller.XsiNilLoader.Array;

public class buscarPedidos extends JDialog 
{

	public Implementacion pedidosGeoLoc = new Implementacion();
	boolean bandera = false;
	
	public Cliente buscado;
	
	
	public static void main(String[] args) {
		try {
			buscarClientes dialog = new buscarClientes();
			dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
			dialog.setVisible(true);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	
	

	public buscarPedidos() 
		 
	{
		setBounds(260, 150, 800, 500);
		getContentPane().setLayout(null);
		
	
		
		
		
		final JLabel lblTitulo = new JLabel("Editar/ borrar un pedido");
		lblTitulo.setBounds(250, 13, 395, 49);
		lblTitulo.setForeground(Color.WHITE);
		lblTitulo.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 25));
		lblTitulo.setBackground(Color.WHITE);
		getContentPane().add(lblTitulo);
		
		final JPanel panel = new JPanel();
		panel.setVisible(false);
		panel.setLayout(null);
		panel.setOpaque(false);
		panel.setBounds(123, 57, 611, 354);
		getContentPane().add(panel);
		
		final JLabel latitud = new JLabel("Latitud:");
		latitud.setHorizontalAlignment(SwingConstants.LEFT);
		latitud.setForeground(Color.WHITE);
		latitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		latitud.setBounds(0, 149, 76, 18);
		
		
		
		final JLabel longitud = new JLabel("Longitud");
		longitud.setHorizontalAlignment(SwingConstants.LEFT);
		longitud.setForeground(Color.WHITE);
		longitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		longitud.setBounds(0, 181, 76, 18);
		
		panel.add(longitud);
		panel.add(latitud);
		
		final JLabel textNombre = new JLabel("");
		textNombre.setHorizontalAlignment(SwingConstants.LEFT);
		textNombre.setForeground(Color.WHITE);
		textNombre.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textNombre.setBounds(83, 55, 311, 18);
		panel.add(textNombre);
		
		final JLabel textCuit = new JLabel("");
		textCuit.setHorizontalAlignment(SwingConstants.LEFT);
		textCuit.setForeground(Color.WHITE);
		textCuit.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textCuit.setBounds(42, 20, 151, 18);
		panel.add(textCuit);
		
		
		JLabel label = new JLabel("Cuit:");
		label.setHorizontalAlignment(SwingConstants.LEFT);
		label.setForeground(Color.WHITE);
		label.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		label.setBounds(0, 20, 43, 18);
		panel.add(label);
		
		JLabel label_1 = new JLabel("Nombre:");
		label_1.setHorizontalAlignment(SwingConstants.LEFT);
		label_1.setForeground(Color.WHITE);
		label_1.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		label_1.setBounds(0, 55, 92, 18);
		panel.add(label_1);
		
		final JLabel lblDireccion = new JLabel("Dirección");
		lblDireccion.setHorizontalAlignment(SwingConstants.LEFT);
		lblDireccion.setForeground(Color.WHITE);
		lblDireccion.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		lblDireccion.setBounds(0, 90, 76, 18);
		panel.add(lblDireccion);
		
		final JLabel textCalle = new JLabel("");
		textCalle.setHorizontalAlignment(SwingConstants.LEFT);
		textCalle.setForeground(Color.WHITE);
		textCalle.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textCalle.setBounds(93, 90, 301, 18);
		panel.add(textCalle);
		
		final JLabel textLocalidadyProv = new JLabel("");
		textLocalidadyProv.setHorizontalAlignment(SwingConstants.LEFT);
		textLocalidadyProv.setForeground(Color.WHITE);
		textLocalidadyProv.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textLocalidadyProv.setBounds(83, 118, 327, 18);
		panel.add(textLocalidadyProv);
		
		final JLabel labelTelefono = new JLabel("Telefono:");
		labelTelefono.setHorizontalAlignment(SwingConstants.LEFT);
		labelTelefono.setForeground(Color.WHITE);
		labelTelefono.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		labelTelefono.setBounds(0, 212, 76, 18);
		panel.add(labelTelefono);
		
		JLabel lblContacto = new JLabel("Contacto:");
		lblContacto.setHorizontalAlignment(SwingConstants.LEFT);
		lblContacto.setForeground(Color.WHITE);
		lblContacto.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		lblContacto.setBounds(0, 243, 76, 18);
		panel.add(lblContacto);
		
		final JLabel textLatitud = new JLabel("");
		textLatitud.setHorizontalAlignment(SwingConstants.LEFT);
		textLatitud.setForeground(Color.WHITE);
		textLatitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textLatitud.setBounds(93, 150, 301, 18);
		panel.add(textLatitud);
		
		final JLabel textLongitud = new JLabel("");
		textLongitud.setHorizontalAlignment(SwingConstants.LEFT);
		textLongitud.setForeground(Color.WHITE);
		textLongitud.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textLongitud.setBounds(93, 182, 301, 18);
		panel.add(textLongitud);
		
		final JLabel textTelefono = new JLabel("");
		textTelefono.setHorizontalAlignment(SwingConstants.LEFT);
		textTelefono.setForeground(Color.WHITE);
		textTelefono.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textTelefono.setBounds(93, 213, 301, 18);
		panel.add(textTelefono);
		
		final JLabel textContacto = new JLabel("");
		textContacto.setHorizontalAlignment(SwingConstants.LEFT);
		textContacto.setForeground(Color.WHITE);
		textContacto.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		textContacto.setBounds(93, 244, 301, 18);
		panel.add(textContacto);
		
		final JComboBox comboBoxEstado = new JComboBox();
		comboBoxEstado.setBounds(134, 293, 147, 22);
		panel.add(comboBoxEstado);
		
		comboBoxEstado.addItem(Estado.Anulado);
		comboBoxEstado.addItem(Estado.Solicitado);
		comboBoxEstado.addItem(Estado.Asignado);
		comboBoxEstado.addItem(Estado.Cerrado);
		
		
		
		final JButton btnGrabar = new JButton("Grabar");
		
		
		JLabel cambiarEstado = new JLabel("Cambiar Estado:");
		cambiarEstado.setHorizontalAlignment(SwingConstants.LEFT);
		cambiarEstado.setForeground(Color.WHITE);
		cambiarEstado.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		cambiarEstado.setBounds(0, 296, 128, 18);
		panel.add(cambiarEstado);
		
		final JLabel estadoActual = new JLabel("");
		estadoActual.setHorizontalAlignment(SwingConstants.LEFT);
		estadoActual.setForeground(Color.WHITE);
		estadoActual.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		estadoActual.setBounds(318, 20, 293, 18);
		panel.add(estadoActual);
		
		final JLabel fecha = new JLabel();
		fecha.setHorizontalAlignment(SwingConstants.LEFT);
		fecha.setForeground(Color.WHITE);
		fecha.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		fecha.setBounds(318, 55, 293, 18);
		panel.add(fecha);
		
		final JLabel lblChofer = new JLabel("");
		lblChofer.setHorizontalAlignment(SwingConstants.LEFT);
		lblChofer.setForeground(Color.WHITE);
		lblChofer.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		lblChofer.setBounds(318, 86, 293, 18);
		panel.add(lblChofer);
		
		
				
		
		final JTextField textBusqueda = new JTextField();
		textBusqueda.setBounds(39, 136, 213, 22);
		getContentPane().add(textBusqueda);
		textBusqueda.setColumns(10);
		
		
		
		final JLabel lblBsquedaPorNombre = new JLabel("Búsqueda por nombre o cuit:");
		lblBsquedaPorNombre.setBounds(39, 91, 213, 36);
		lblBsquedaPorNombre.setForeground(Color.WHITE);
		lblBsquedaPorNombre.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 15));
		getContentPane().add(lblBsquedaPorNombre);
		
		
		final JLabel lbNoExiste = new JLabel("El cliente no existe");
		lbNoExiste.setBounds(313, 109, 421, 70);
		getContentPane().add(lbNoExiste);
		lbNoExiste.setForeground(Color.RED);
		lbNoExiste.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 20));
		lbNoExiste.setHorizontalAlignment(SwingConstants.CENTER);
		lbNoExiste.setVisible(false);
		
		final JButton btnVer = new JButton("Ver...");
		btnVer.setBounds(96, 396, 97, 25);
		btnVer.setVisible(false);
		getContentPane().add(btnVer);
	
		
		
		final JPanel panel_1 = new JPanel();
		panel_1.setBounds(200, 57, 400, 326);
		panel_1.setVisible(false);
		panel_1.setOpaque(false);
		getContentPane().add(panel_1);
		
		
		
		final JButton btnIr = new JButton("Ir...");
		btnIr.setBounds(96, 171, 97, 25);
		getContentPane().add(btnIr);
		btnIr.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) 
			{	
				String texto = textBusqueda.getText();
				
				
				buscado = pedidosGeoLoc.buscarCliente(texto);
				
				if(buscado ==null)
					lbNoExiste.setVisible(true);
				else
					{
					lbNoExiste.setVisible(false);
					btnIr.setVisible(false);
					lblBsquedaPorNombre.setVisible(false);
					textBusqueda.setVisible(false);
					
					
					
					lblTitulo.setText("Pedidos de:" + buscado.getNombre());
					
					
					Pedido listaPedidos [] = new Pedido[pedidosGeoLoc.getPedidos(buscado).tamanio()];
					Iterator iterador = pedidosGeoLoc.getPedidosSolicitados(buscado).iterator();
					int z=0;
					while(iterador.hasNext())
					{
						listaPedidos [z] = (Pedido) iterador.next();
						z++;					
					}
						
					final JList lista = new JList<Pedido>(listaPedidos);
					lista.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 14));
					lista.setSelectionMode(ListSelectionModel.SINGLE_SELECTION );
					panel_1.add(lista);
					panel_1.setVisible(true);
					
					btnVer.setVisible(true);
					
					
					
					
					btnVer.addActionListener(new ActionListener() {
						public void actionPerformed(ActionEvent e) {
							
							panel_1.setVisible(false);
							panel.setVisible(true);
							textCuit.setText(buscado.getCuit());
							textNombre.setText(buscado.getNombre());
							textCalle.setText(buscado.getDomicilio().getDireccion().getCalle()
									+ " " + buscado.getDomicilio().getDireccion().getAltura() );
							textLocalidadyProv.setText(buscado.getDomicilio().getDireccion().getLocalidad()+
									"," + buscado.getDomicilio().getDireccion().getProvincia());
							
							textTelefono.setText(buscado.getTelefono());
							textContacto.setText(buscado.getNombre_Contacto());
							
							textLatitud.setText(Double.toString(buscado.getDomicilio().getCoordenada().getLatitud()));
							textLongitud.setText(Double.toString(buscado.getDomicilio().getCoordenada().getLongitud()));
							
							final Pedido actual = (Pedido)lista.getSelectedValue();
							
							estadoActual.setText("Estado: " + actual.getEstado().toString());
							
							fecha.setText("Fecha: " + actual.getFecha());
							
							lblChofer.setText("Chofer: " + actual.getChofer());
							
							
							
							btnGrabar.addActionListener(new ActionListener() {
								public void actionPerformed(ActionEvent e) 
								{
									
									
									pedidosGeoLoc.cambiarEstadoPedido(actual, (Estado)comboBoxEstado.getSelectedItem());
								}
							});
							btnGrabar.setBounds(306, 292, 76, 25);
							panel.add(btnGrabar);
							
						}
					});
					
					
					
				}

					
					
					
					
					
				
					
					
					
					
					
					}
					
		});
				
				JButton btnVolver = new JButton("Volver");
				btnVolver.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent e) {
						dispose();
					}
				});
				btnVolver.setBounds(673, 424, 97, 25);
				getContentPane().add(btnVolver);
		
				JLabel fondo = new JLabel("");
				fondo.setHorizontalAlignment(SwingConstants.TRAILING);
				fondo.setBounds(0, 0, 798, 460);
				fondo.setFont(new Font("Arial", Font.BOLD | Font.ITALIC, 18));
				fondo.setIcon(new ImageIcon("Imagenes/azulFondo.jpeg"));
				getContentPane().add(fondo);
			
			

		
		
	}
}



	
	

